<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //构造函数特点
        //1.构造函数有原型对象prototype
        //2.构造函数原型对象prototype里面有constructor 指向构造函数本身
        //3.构造函数原型对象添加方法
        //4.构造函数创建实例对象有__proto__原型指向 构造函数的原型对象
        //5.ES6通过类实现面向对象编程
        //6.ES6的类就是语法糖(最方便的写法例如i=i+1  像i++)
        class Star {


        }
        console.log(typeof Star);
        //类的本质其实还是一个函数，我们也可以简单的认为类就是构造函数的另一种写法
        //1).构造函数有原型对象prototype
        console.log(Star.prototype);  //里面有constructor属性好友sing这个方法

        //2.构造函数原型对象prototype里面有constructor 指向构造函数本身
        console.log(Star.prototype.constructor);  //指向类的本身

        // 3.构造函数原型对象添加方法
        Star.prototype.sing = function () {
            console.log('冰雨');
        }

        var ldh = new Star();
        console.dir(ldh);

        //4)构造函数创建实例对象有__proto__原型指向 构造函数的原型对象
        console.log(ldh.__proto__ === Star.prototype);  //true

    </script>
</body>

</html>